//-------------------------------------------------------------------------
/*
Copyright (C) 1997, 2005 - 3D Realms Entertainment

This file is part of Shadow Warrior version 1.2

Shadow Warrior is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

Original Source: 1997 - Frank Maddin and Jim Norwood
Prepared for public release: 03/28/2005 - Charlie Wiederhold, 3D Realms
*/
//-------------------------------------------------------------------------

#ifndef KEYS_H

#define KEYS_H

#define NUM_CODES     128

#define ESC    0x1B
#define ENTER  0x0D

#define KEYSC_ESC	  0x01
#define KEYSC_1  	  0x02
#define KEYSC_2  	  0x03
#define KEYSC_3  	  0x04
#define KEYSC_4  	  0x05
#define KEYSC_5  	  0x06
#define KEYSC_6  	  0x07
#define KEYSC_7  	  0x08
#define KEYSC_8  	  0x09
#define KEYSC_9  	  0x0a
#define KEYSC_0  	  0x0b
#define KEYSC_DASH     0x0c
#define KEYSC_EQUAL    0x0d

#define KEYSC_BS 	  0x0e
#define KEYSC_TAB	  0x0f
#define KEYSC_Q  	  0x10
#define KEYSC_W  	  0x11
#define KEYSC_E  	  0x12
#define KEYSC_R  	  0x13
#define KEYSC_T  	  0x14
#define KEYSC_Y  	  0x15
#define KEYSC_U  	  0x16
#define KEYSC_I  	  0x17
#define KEYSC_O  	  0x18
#define KEYSC_P  	  0x19
#define KEYSC_LBRACK   0x1a
#define KEYSC_RBRACK   0x1b
#define KEYSC_ENTER    0x1c

#define KEYSC_LCTRL    0x1d
#define KEYSC_A  	  0x1e
#define KEYSC_S  	  0x1f
#define KEYSC_D  	  0x20
#define KEYSC_F  	  0x21
#define KEYSC_G  	  0x22
#define KEYSC_H  	  0x23
#define KEYSC_J  	  0x24
#define KEYSC_K  	  0x25
#define KEYSC_L  	  0x26
#define KEYSC_SEMI     0x27
#define KEYSC_QUOTE    0x28
#define KEYSC_BQUOTE   0x29
#define KEYSC_TILDE    0x29

#define KEYSC_LSHIFT   0x2a
#define KEYSC_BSLASH   0x2b
#define KEYSC_Z  	  0x2c
#define KEYSC_X  	  0x2d
#define KEYSC_C  	  0x2e
#define KEYSC_V  	  0x2f
#define KEYSC_B  	  0x30
#define KEYSC_N  	  0x31
#define KEYSC_M  	  0x32
#define KEYSC_COMMA    0x33
#define KEYSC_PERIOD   0x34
#define KEYSC_SLASH    0x35
#define KEYSC_RSHIFT   0x36
#define KEYSC_gSTAR    0x37

#define KEYSC_LALT     0x38
#define KEYSC_SPACE    0x39
#define KEYSC_CAPS     0x3a

#define KEYSC_F1 	  0x3b
#define KEYSC_F2 	  0x3c
#define KEYSC_F3 	  0x3d
#define KEYSC_F4 	  0x3e
#define KEYSC_F5 	  0x3f
#define KEYSC_F6 	  0x40
#define KEYSC_F7 	  0x41
#define KEYSC_F8 	  0x42
#define KEYSC_F9 	  0x43
#define KEYSC_F10	  0x44

#define KEYSC_gNUM     0x45
#define KEYSC_SCROLL   0x46

#define KEYSC_gHOME    0x47
#define KEYSC_gUP	  0x48
#define KEYSC_gPGUP    0x49
#define KEYSC_gMINUS   0x4a
#define KEYSC_gLEFT    0x4b
#define KEYSC_gKP5     0x4c
#define KEYSC_gRIGHT   0x4d
#define KEYSC_gPLUS    0x4e
#define KEYSC_gEND     0x4f
#define KEYSC_gDOWN    0x50
#define KEYSC_gPGDN    0x51
#define KEYSC_gINS     0x52
#define KEYSC_gDEL     0x53

#define KEYSC_F11    0x57
#define KEYSC_F12    0x58

#define KEYSC_gENTER   0x9C
#define KEYSC_RCTRL    0x9D
#define KEYSC_gSLASH   0xB5
#define KEYSC_RALT     0xB8
#define KEYSC_PRTSCN   0xB7
#define KEYSC_PAUSE    0xC5
#define KEYSC_HOME     0xC7
#define KEYSC_UP 	  0xC8
#define KEYSC_PGUP     0xC9
#define KEYSC_LEFT     0xCB
#define KEYSC_RIGHT    0xCD
#define KEYSC_END	  0xCF
#define KEYSC_DOWN     0xD0
#define KEYSC_PGDN     0xD1
#define KEYSC_INSERT   0xD2
#define KEYSC_DELETE   0xD3

#define asc_Esc         27
#define asc_Enter       13
#define asc_Space       32

#endif
